package com.smartscreen.attendancemanage.dto;

import com.smartscreen.attendancemanage.entity.LeaveApplication;

import java.time.LocalDateTime;

public class LeaveApplicationWithStudentInfoDTO {
    private String applicationId;
    private String studentId;
    private String studentName;
    private String studentNumber;
    private String leaveType;
    private LocalDateTime startTime;
    private LocalDateTime endTime;
    private String reason;
    private String status;
    private String approverId;
    private String approverName;
    private String approvalComment;
    private LocalDateTime approvalTime;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;

    // 构造函数
    public LeaveApplicationWithStudentInfoDTO() {}

    public LeaveApplicationWithStudentInfoDTO(LeaveApplication application) {
        this.applicationId = application.getApplicationId();
        this.studentId = application.getStudentId();
        this.leaveType = application.getLeaveType();
        this.startTime = application.getStartTime();
        this.endTime = application.getEndTime();
        this.reason = application.getReason();
        this.status = application.getStatus();
        this.approverId = application.getApproverId();
        this.approvalComment = application.getApprovalComment();
        this.approvalTime = application.getApprovalTime();
        this.createdAt = application.getCreatedAt();
        this.updatedAt = application.getUpdatedAt();
    }

    // Getters and Setters
    public String getApplicationId() { return applicationId; }
    public void setApplicationId(String applicationId) { this.applicationId = applicationId; }
    public String getStudentId() { return studentId; }
    public void setStudentId(String studentId) { this.studentId = studentId; }
    public String getStudentName() { return studentName; }
    public void setStudentName(String studentName) { this.studentName = studentName; }
    public String getStudentNumber() { return studentNumber; }
    public void setStudentNumber(String studentNumber) { this.studentNumber = studentNumber; }
    public String getLeaveType() { return leaveType; }
    public void setLeaveType(String leaveType) { this.leaveType = leaveType; }
    public LocalDateTime getStartTime() { return startTime; }
    public void setStartTime(LocalDateTime startTime) { this.startTime = startTime; }
    public LocalDateTime getEndTime() { return endTime; }
    public void setEndTime(LocalDateTime endTime) { this.endTime = endTime; }
    public String getReason() { return reason; }
    public void setReason(String reason) { this.reason = reason; }
    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }
    public String getApproverId() { return approverId; }
    public void setApproverId(String approverId) { this.approverId = approverId; }
    public String getApproverName() { return approverName; }
    public void setApproverName(String approverName) { this.approverName = approverName; }
    public String getApprovalComment() { return approvalComment; }
    public void setApprovalComment(String approvalComment) { this.approvalComment = approvalComment; }
    public LocalDateTime getApprovalTime() { return approvalTime; }
    public void setApprovalTime(LocalDateTime approvalTime) { this.approvalTime = approvalTime; }
    public LocalDateTime getCreatedAt() { return createdAt; }
    public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }
    public LocalDateTime getUpdatedAt() { return updatedAt; }
    public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; }
}